// 修改 makeCounter() 代码，使得 counter 可以进行减一和设置值的操作：

// counter() 应该返回下一个数字（与之前的逻辑相同）。
// counter.set(value) 应该将 count 设置为 value。
// counter.decrease() 应该把 count 减 1。

// P.S. 你可以使用闭包或者函数属性来保持当前的计数，或者两种都写。

// * 1.闭包形式：
function makeCounter() {
	let count = 0

	function counter() {
		return count++
	}

	counter.set = (val) => (count = val)
	counter.decrease = () => count--

	return counter
}

let counter = makeCounter()

console.log(counter()) // 0
console.log(counter()) // 1
console.log(counter()) // 2

counter.set(10)
counter.decrease()
console.log(counter()) // 9

// * 2.函数属性形式：
function makeCounter2() {
	const counter2 = () => counter2.count++

	counter2.count = 0
	counter2.set = (val) => (counter2.count = val)
	counter2.decrease = () => counter2.count--

	return counter2
}

let counter2 = makeCounter2()

console.log(counter2()) // 0
console.log(counter2()) // 1
console.log(counter2()) // 2
counter2.set(10)
console.log(counter2.count) // 10
counter2.decrease()
console.log(counter2.count) // 9
